<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fiemap.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/fiemap.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * FS_IOC_FIEMAP ioctl infrastructure.</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> * Some portions copyright (C) 2007 Cluster File Systems, Inc</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> *</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * Authors: Mark Fasheh &lt;mfasheh@suse.com&gt;</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *          Kalpak Shah &lt;kalpak.shah@sun.com&gt;</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> *          Andreas Dilger &lt;adilger@sun.com&gt;</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> */</span>
<a name="10" /><span class="True">      10:</span> 
<a name="11" /><span class="True">      11:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0ZJRU1BUF9IXzA_"><span class="b">_LINUX_FIEMAP_H</span></a>
<a name="12" /><span class="True">      12:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX0ZJRU1BUF9IXzA_"><span class="b">_LINUX_FIEMAP_H</span></a>
<a name="13" /><span class="True">      13:</span> 
<a name="14" /><span class="True">      14:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="15" /><span class="True">      15:</span> 
<a name="16" /><span class="True">      16:</span> <span class="m">struct</span> <span class="b">fiemap_extent</span> <span class="f">{</span>
<a name="17" /><span class="True">      17:</span>     <span class="b">__u64</span> <span class="b">fe_logical</span><span class="f">;</span>  <span class="k">/* logical offset in bytes for the start of</span>
<a name="18" /><span class="True">      18:</span> <span class="k">                * the extent from the beginning of the file */</span>
<a name="19" /><span class="True">      19:</span>     <span class="b">__u64</span> <span class="b">fe_physical</span><span class="f">;</span> <span class="k">/* physical offset in bytes for the start</span>
<a name="20" /><span class="True">      20:</span> <span class="k">                * of the extent from the beginning of the disk */</span>
<a name="21" /><span class="True">      21:</span>     <span class="b">__u64</span> <span class="b">fe_length</span><span class="f">;</span>   <span class="k">/* length in bytes for this extent */</span>
<a name="22" /><span class="True">      22:</span>     <span class="b">__u64</span> <span class="b">fe_reserved64</span><span class="f">[</span><span class="c">2</span><span class="f">]</span><span class="f">;</span>
<a name="23" /><span class="True">      23:</span>     <span class="b">__u32</span> <span class="b">fe_flags</span><span class="f">;</span>    <span class="k">/* FIEMAP_EXTENT_* flags for this extent */</span>
<a name="24" /><span class="True">      24:</span>     <span class="b">__u32</span> <span class="b">fe_reserved</span><span class="f">[</span><span class="c">3</span><span class="f">]</span><span class="f">;</span>
<a name="25" /><span class="True">      25:</span> <span class="f">}</span><span class="f">;</span>
<a name="26" /><span class="True">      26:</span> 
<a name="27" /><span class="True">      27:</span> <span class="m">struct</span> <span class="b">fiemap</span> <span class="f">{</span>
<a name="28" /><span class="True">      28:</span>     <span class="b">__u64</span> <span class="b">fm_start</span><span class="f">;</span>        <span class="k">/* logical offset (inclusive) at</span>
<a name="29" /><span class="True">      29:</span> <span class="k">                 * which to start mapping (in) */</span>
<a name="30" /><span class="True">      30:</span>     <span class="b">__u64</span> <span class="b">fm_length</span><span class="f">;</span>    <span class="k">/* logical length of mapping which</span>
<a name="31" /><span class="True">      31:</span> <span class="k">                 * userspace wants (in) */</span>
<a name="32" /><span class="True">      32:</span>     <span class="b">__u32</span> <span class="b">fm_flags</span><span class="f">;</span>        <span class="k">/* FIEMAP_FLAG_* flags for request (in/out) */</span>
<a name="33" /><span class="True">      33:</span>     <span class="b">__u32</span> <span class="b">fm_mapped_extents</span><span class="f">;</span><span class="k">/* number of extents that were mapped (out) */</span>
<a name="34" /><span class="True">      34:</span>     <span class="b">__u32</span> <span class="b">fm_extent_count</span><span class="f">;</span>  <span class="k">/* size of fm_extents array (in) */</span>
<a name="35" /><span class="True">      35:</span>     <span class="b">__u32</span> <span class="b">fm_reserved</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span>     <span class="m">struct</span> <span class="b">fiemap_extent</span> <span class="b">fm_extents</span><span class="f">[</span><span class="c">0</span><span class="f">]</span><span class="f">;</span> <span class="k">/* array of mapped extents (out) */</span>
<a name="37" /><span class="True">      37:</span> <span class="f">}</span><span class="f">;</span>
<a name="38" /><span class="True">      38:</span> 
<a name="39" /><span class="True">      39:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX01BWF9PRkZTRVRfMA__"><span class="b">FIEMAP_MAX_OFFSET</span></a>    <span class="f">(</span><span class="f">~</span><span class="c">0ULL</span><span class="f">)</span>
<a name="40" /><span class="True">      40:</span> 
<a name="41" /><span class="True">      41:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0ZMQUdfU1lOQ18w"><span class="b">FIEMAP_FLAG_SYNC</span></a>    <span class="c">0x00000001</span> <span class="k">/* sync file data before map */</span>
<a name="42" /><span class="True">      42:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0ZMQUdfWEFUVFJfMA__"><span class="b">FIEMAP_FLAG_XATTR</span></a>    <span class="c">0x00000002</span> <span class="k">/* map extended attribute tree */</span>
<a name="43" /><span class="True">      43:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0ZMQUdfQ0FDSEVfMA__"><span class="b">FIEMAP_FLAG_CACHE</span></a>    <span class="c">0x00000004</span> <span class="k">/* request caching of the extents */</span>
<a name="44" /><span class="True">      44:</span> 
<a name="45" /><span class="True">      45:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0ZMQUdTX0NPTVBBVF8w"><span class="b">FIEMAP_FLAGS_COMPAT</span></a>    <span class="f">(</span><a href="cpu.c_macros_noref.html#_RklFTUFQX0ZMQUdfU1lOQ18w"><span class="b">FIEMAP_FLAG_SYNC</span></a> <span class="f">|</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0ZMQUdfWEFUVFJfMA__"><span class="b">FIEMAP_FLAG_XATTR</span></a><span class="f">)</span>
<a name="46" /><span class="True">      46:</span> 
<a name="47" /><span class="True">      47:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9MQVNUXzA_"><span class="b">FIEMAP_EXTENT_LAST</span></a>        <span class="c">0x00000001</span> <span class="k">/* Last extent in file. */</span>
<a name="48" /><span class="True">      48:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9VTktOT1dOXzA_"><span class="b">FIEMAP_EXTENT_UNKNOWN</span></a>        <span class="c">0x00000002</span> <span class="k">/* Data location unknown. */</span>
<a name="49" /><span class="True">      49:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9ERUxBTExPQ18w"><span class="b">FIEMAP_EXTENT_DELALLOC</span></a>        <span class="c">0x00000004</span> <span class="k">/* Location still pending.</span>
<a name="50" /><span class="True">      50:</span> <span class="k">                            * Sets EXTENT_UNKNOWN. */</span>
<a name="51" /><span class="True">      51:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9FTkNPREVEXzA_"><span class="b">FIEMAP_EXTENT_ENCODED</span></a>        <span class="c">0x00000008</span> <span class="k">/* Data can not be read</span>
<a name="52" /><span class="True">      52:</span> <span class="k">                            * while fs is unmounted */</span>
<a name="53" /><span class="True">      53:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9EQVRBX0VOQ1JZUFRFRF8w"><span class="b">FIEMAP_EXTENT_DATA_ENCRYPTED</span></a>    <span class="c">0x00000080</span> <span class="k">/* Data is encrypted by fs.</span>
<a name="54" /><span class="True">      54:</span> <span class="k">                            * Sets EXTENT_NO_BYPASS. */</span>
<a name="55" /><span class="True">      55:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9OT1RfQUxJR05FRF8w"><span class="b">FIEMAP_EXTENT_NOT_ALIGNED</span></a>    <span class="c">0x00000100</span> <span class="k">/* Extent offsets may not be</span>
<a name="56" /><span class="True">      56:</span> <span class="k">                            * block aligned. */</span>
<a name="57" /><span class="True">      57:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9EQVRBX0lOTElORV8w"><span class="b">FIEMAP_EXTENT_DATA_INLINE</span></a>    <span class="c">0x00000200</span> <span class="k">/* Data mixed with metadata.</span>
<a name="58" /><span class="True">      58:</span> <span class="k">                            * Sets EXTENT_NOT_ALIGNED.*/</span>
<a name="59" /><span class="True">      59:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9EQVRBX1RBSUxfMA__"><span class="b">FIEMAP_EXTENT_DATA_TAIL</span></a>        <span class="c">0x00000400</span> <span class="k">/* Multiple files in block.</span>
<a name="60" /><span class="True">      60:</span> <span class="k">                            * Sets EXTENT_NOT_ALIGNED.*/</span>
<a name="61" /><span class="True">      61:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9VTldSSVRURU5fMA__"><span class="b">FIEMAP_EXTENT_UNWRITTEN</span></a>        <span class="c">0x00000800</span> <span class="k">/* Space allocated, but</span>
<a name="62" /><span class="True">      62:</span> <span class="k">                            * no data (i.e. zero). */</span>
<a name="63" /><span class="True">      63:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9NRVJHRURfMA__"><span class="b">FIEMAP_EXTENT_MERGED</span></a>        <span class="c">0x00001000</span> <span class="k">/* File does not natively</span>
<a name="64" /><span class="True">      64:</span> <span class="k">                            * support extents. Result</span>
<a name="65" /><span class="True">      65:</span> <span class="k">                            * merged for efficiency. */</span>
<a name="66" /><span class="True">      66:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_RklFTUFQX0VYVEVOVF9TSEFSRURfMA__"><span class="b">FIEMAP_EXTENT_SHARED</span></a>        <span class="c">0x00002000</span> <span class="k">/* Space shared with other</span>
<a name="67" /><span class="True">      67:</span> <span class="k">                            * files. */</span>
<a name="68" /><span class="True">      68:</span> 
<a name="69" /><span class="True">      69:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_FIEMAP_H */</span>
<a name="70" /><span class="True">      70:</span> </pre>
  </body>
</html>
